﻿using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using Entidades.Sistema.Base;

namespace Mapping.Sistema.Base
{
    public static class MappingProvincia
    {
        public static List<Provincia> ConsultarProvincias()
        {
            try
            {
                SqlCommand cmdProvincias = new SqlCommand();
                cmdProvincias.CommandText = "sp_ConsultarProvincia";
                Servicios.Conexion.ObtenerInstancia().Conectar("Sistema");
                cmdProvincias.CommandType = System.Data.CommandType.StoredProcedure;
                cmdProvincias.Connection = Servicios.Conexion.ObtenerInstancia().RetornarConexion();
                SqlDataReader drProvincias = cmdProvincias.ExecuteReader();

                List<Provincia> ColProvinciaes = new List<Provincia>();

                while (drProvincias.Read())
                {
                    Provincia oProvincia = new Provincia();
                    oProvincia.IdProvincia = Convert.ToInt32(drProvincias["Id_Provincia"]);
                    oProvincia.Nombre = drProvincias["Nombre"].ToString();
                    ColProvinciaes.Add(oProvincia);
                }
                Servicios.Conexion.ObtenerInstancia().Desconectar("Sistema");

                return ColProvinciaes.OrderBy(x => x.Nombre).ToList();
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }

        public static bool AgregarProvincia(Provincia oProvincia)
        {
            SqlCommand cmdProvincia = new SqlCommand();
            cmdProvincia.CommandText = "sp_AgregarProvincia";
            cmdProvincia.CommandType = System.Data.CommandType.StoredProcedure;
            cmdProvincia.Connection = Servicios.Conexion.ObtenerInstancia().RetornarConexion();
            cmdProvincia.Parameters.Add("@Id_Provincia", System.Data.SqlDbType.Int).Value = oProvincia.IdProvincia;
            cmdProvincia.Parameters.Add("@Nombre", System.Data.SqlDbType.VarChar, 50).Value = oProvincia.Nombre;
            cmdProvincia.ExecuteNonQuery();
            return true;
        }

        public static int ModificarProvincia(Provincia oProvincia)
        {
            SqlCommand cmdProvincia = new SqlCommand();
            cmdProvincia.CommandText = "sp_ModificarProvincia";
            cmdProvincia.CommandType = System.Data.CommandType.StoredProcedure;
            cmdProvincia.Connection = Servicios.Conexion.ObtenerInstancia().RetornarConexion();
            cmdProvincia.Parameters.Add("@Id_Provincia", System.Data.SqlDbType.Int).Value = oProvincia.IdProvincia;
            cmdProvincia.Parameters.Add("@Nombre", System.Data.SqlDbType.VarChar).Value = oProvincia.Nombre;
            int nro = Convert.ToInt32(cmdProvincia.ExecuteScalar());

            return nro;
        }

        public static bool EliminarProvincia(Provincia oProvincia)
        {
            SqlCommand cmdEliminarProvincia = new SqlCommand();
            cmdEliminarProvincia.CommandText = "sp_EliminarProvincia";
            cmdEliminarProvincia.CommandType = System.Data.CommandType.StoredProcedure;
            cmdEliminarProvincia.Connection = Servicios.Conexion.ObtenerInstancia().RetornarConexion();
            cmdEliminarProvincia.Parameters.Add("@Id_Provincia", System.Data.SqlDbType.Int).Value = oProvincia.IdProvincia;
            cmdEliminarProvincia.ExecuteNonQuery();

            return true;
        }
    }
}
